/*
 * Powered By XY
 * Since 2020
 */

package com.xy.biz.xd.service;

import com.xy.biz.fd.domain.req.documentCode.GetDocumentByCodeRequest;
import com.xy.biz.xd.domain.query.DocumentFlowHandleQuery;
import com.xy.biz.xd.domain.req.GetDocumentFlowSimpleHandlesRequest;
import com.xy.biz.xd.domain.resp.DocumentFlowHandleTimeLineResponse;
import com.xy.biz.xd.domain.resp.GetDocumentFlowHandleResponse;
import com.xy.biz.xd.domain.resp.GetDocumentFlowResponse;
import com.xy.biz.xd.domain.tree.UserTreeItem;
import com.xy.lang.domain.Result;

import java.util.List;

/**
 *
 *
 * @author wcs
 * @date 2021-3-5
 */
public interface DocumentFlowHandleService {
    /**
     * 查找多个
     *
     * @param query 查找条件
     */
    List<GetDocumentFlowResponse> listDocumentFlowHandle(DocumentFlowHandleQuery query);

    /**
     * 统计个数
     *
     * @param query 查找条件
     */
    int countDocumentFlowHandle(DocumentFlowHandleQuery query);


    Result<List<GetDocumentFlowHandleResponse>> listDocumentFlowHandleByPhase(DocumentFlowHandleQuery query);

    Result<List<GetDocumentFlowHandleResponse>> listDocumentFlowHandleByDocumentCode(GetDocumentByCodeRequest request);

    Result<List<DocumentFlowHandleTimeLineResponse>> listDocumentFlowSimpleNodesHandle(GetDocumentFlowSimpleHandlesRequest request);

    List<GetDocumentFlowHandleResponse> listDocumentFlowNodesHandle(GetDocumentFlowSimpleHandlesRequest request);

    Result<UserTreeItem> getDrafterUserGroup(GetDocumentFlowSimpleHandlesRequest request);
}
